Postmortems from Game Developer
Tags: #gaming #development #project management #technology #design
Authors: Austin Grossman
Overview
This book is a collection of postmortems that chronicles the development of sixteen different video games, offering valuable lessons learned from both successes and failures. Each postmortem provides insights into the challenges of game development, from managing complex projects and tight budgets to dealing with publishers and incorporating new technologies. The book explores how teams overcame obstacles, made critical decisions, and ultimately shipped their games. The postmortems are grouped into five sections: startups, sequels and follow-ups, games with innovative technologies, licensed games, and online games. Each section highlights specific challenges and considerations related to these different types of development. This book is for anyone who is interested in game development, particularly aspiring game developers, designers, programmers, artists, and producers. It emphasizes the importance of teamwork, planning, effective communication, and iteration. The book also underscores the complexities of working with new technologies and adapting to evolving market conditions. The lessons learned from these postmortems are applicable to any game development project, big or small, and they provide a glimpse into the creative, chaotic, and ultimately rewarding process of bringing a video game to life. There is a certain amount of luck in every project, but the most important factor is having a team of dedicated and talented people who love games and want to make them.
Book Outline
1. Startups
Startups can take various forms beyond the traditional garage-band model. Some may start by creating ports of existing games or add-on packs, leveraging existing technology, or emerge from an existing company as a spin-off.
Key concept: “There’s more than one way to form a startup.”
1. Startups
Although game developers may perceive publishers as obstacles to creativity, they can actually be valuable partners. A truthful and realistic relationship between a developer and publisher can benefit both parties, especially when the publisher understands the product and its shipping timeline, allowing for better marketing.
Key concept: “Publishers aren’t necessarily the enemy.”
1. Irrational Games’ SYSTEM SHOCK 2
The choice of game engine can make or break a game development project. For SYSTEM SHOCK 2, using a shared codebase with the “Dark Engine” from Looking Glass had advantages (direct access to ongoing bug-fixes and the ability to customize) and disadvantages (inheriting bugs and the pressure to fix engine problems). A frozen, stable engine with a clear API can be preferable, but the flexibility of the shared codebase allowed for more tailored features.
Key concept: “It’s the Engine, Stupid”
1. Irrational Games’ SYSTEM SHOCK 2
Collaborative development between Irrational Games and Looking Glass, with Looking Glass providing the engine and infrastructure support and Irrational handling the design and project leadership, had its challenges, but ultimately proved successful because both parties were committed to creating a great product.
Key concept: “Cooperative development”
1. Startups
In a startup, choosing the right team is crucial. Team members should be reliable and easy to work with, and have the necessary skills or ability to learn quickly. For smaller teams, contracting out certain elements, like animation, may be necessary.
Key concept: “Hire the right people.”
1. Bohemia Interactive Studio’s OPERATION FLASHPOINT
The community of players can be an invaluable resource for a game developer. They can help with testing, marketing, and generating excitement for the game, even years before release.
Key concept: “The community”
1. Bohemia Interactive Studio’s OPERATION FLASHPOINT
Designing a game with an open architecture allows for modders and the community to extend the game’s life. By providing tools like mission editors and using data-driven functionalities rather than hard-coding, developers can empower players to create their own content and lengthen the product’s lifespan.
Key concept: “Open architecture”
1. Surreal Software’s DRAKAN: ORDER OF THE FLAME
When building a game engine, especially one meant to be reusable, object-oriented coding offers many advantages. Separating game-specific code from the core engine allows for easier porting and maintenance, while systems for managing large amounts of data and creating visual tools that reflect the final game are crucial for development.
Key concept: “Engine and tools”
1. Ensemble’s AGE OF EMPIRES
Designing a successful game is not about blindly imitating popular trends. In the case of AGE OF EMPIRES, inspiration for real-time combat came from playing and enjoying WARCRAFT II, and the game’s unique flavor arose from the team’s willingness to experiment and iterate.
Key concept: “Designing the Past Perfect”
2. Blizzard Entertainment’s DIABLO II
Sequels require finding the right balance between staying true to the original game’s successful elements while introducing new features and expanding upon existing ones. DIABLO II was a complete rewrite in terms of code and art, but it retained the core gameplay loop that made the original successful.
Key concept: “DIABLO II is still DIABLO”
2. Blizzard Entertainment’s DIABLO II
Having a clear development process that allows for iterative design and constant reevaluation of gameplay and features is crucial for making a great game. Early playability helps identify what works and what doesn’t, while remaining open to changes and improvements until the very end ensures that the game is as good as it can be before it ships.
Key concept: “Blizzard’s development process”
2. Blizzard Entertainment’s DIABLO II
With the growing number of customers outside North America, a simultaneous worldwide release can be a smart strategy. It builds anticipation, avoids the problem of “warez” and localized versions, and allows marketing efforts to be concentrated.
Key concept: “Simultaneous worldwide release”
2. Epic Games’ UNREAL TOURNAMENT
Sequels can arise organically from add-on packs as features grow and needs change. UNREAL TOURNAMENT began as an expansion to improve upon UNREAL’s multiplayer, but became a standalone project as the scope increased.
Key concept: “Early Development”
2. Epic Games’ UNREAL TOURNAMENT
A flat, liberal company structure, where every team member can contribute ideas and is given creative freedom, fostered a positive and productive development environment for UNREAL TOURNAMENT.
Key concept: “Liberal internal structure, open design discussion”
2. Epic Games’ UNREAL TOURNAMENT
Engaging with the gaming community through forums and message boards is crucial for getting feedback and understanding what players want. This can be valuable for making design decisions and gauging public reaction to features.
Key concept: “Direct communication with the gaming community”
2. Westwood Studios’ TIBERIAN SUN
When developing a sequel, it is essential to retain the feel of the original game while offering new and interesting elements. This balance of familiar and new can be challenging to achieve, but drawing upon the experiences of the development team who worked on previous games can help ensure consistency.
Key concept: “Maintained C&C style of game play”
2. Nihilistic Software’s VAMPIRE: THE MASQUERADE–REDEMPTION
A small team of highly experienced developers working in a single room can often be more efficient than a larger, more compartmentalized team. This approach fosters communication and prevents time wasted on blind alleys or power struggles.
Key concept: “Small team, one project, one room”
2. Nihilistic Software’s VAMPIRE: THE MASQUERADE–REDEMPTION
Incorporating a scripting engine can make a game more extensible for modders and the development team. Choosing an existing and widely-supported scripting language like Java saves development time and provides added benefits for extensibility and stability.
Key concept: “Using Java as a scripting engine”
2. Presto Studio’s MYST III: EXILE
Knowing your target audience is crucial for any game development project. Extensive research into who plays your games, what they like, and what kind of computers they use will help shape the design, story, visuals, and technology.
Key concept: “Identifying the customer”
2. Presto Studio’s MYST III: EXILE
Thorough preproduction and planning are essential to prevent costly mistakes during production. By spending time designing the game on paper before creating any assets, the team can work out any kinks and ensure a smoother and more efficient production process.
Key concept: “Preproduction and planning”
2. Poptop Software’s TROPICO
Focusing on developing rich and believable characters is key for creating a game world that feels alive and engaging, even if the player doesn’t have direct control over individual units.
Key concept: “Created ‘deep’ character”
2. Poptop Software’s TROPICO
Investing in the development of custom tools can significantly speed up the process of creating assets, levels, and UI elements, saving time and allowing for greater flexibility during production.
Key concept: “Homegrown tools”
3. Mythic Entertainment’s DARK AGE OF CAMELOT
A strong community management team and an effective beta program are essential for building excitement for the game, getting valuable feedback from players, and ensuring a smooth launch.
Key concept: “Community management/beta program”
3. Turbine’s ASHERON’S CALL
Developing a game engine with a modular, data-independent architecture allows for prototyping new games and features quickly by changing data while keeping the core engine code relatively unchanged.
Key concept: “Reusable engine and tools”
4. LucasArts’ STAR WARS™ STARFIGHTER
Open and frequent communication between all team members is vital for a successful project. Dedicated sub-team meetings, regular full-team updates, and a robust internally-maintained website for reference helped keep everyone informed and allowed for quick problem solving.
Key concept: “Good team communication”
4. Raven Software’s STAR TREK™: VOYAGER–ELITE FORCE
Building upon a licensed engine can offer advantages in terms of starting with a solid codebase and familiar tools. However, integrating existing technology with new systems and adapting it to a different game design can still present significant challenges.
Key concept: “Improvements to the Quake 3 Engine”
4. Raven Software’s SOLDIER OF FORTUNE
A team’s familiarity with the underlying technology and the development of specialized tools greatly helped in speeding up the game creation process. Custom tools for level and model editing allowed for more efficient workflows.
Key concept: “Familiarity with technology plus powerful tools and enhancements”
4. Raven Software’s SOLDIER OF FORTUNE
Actively engaging with the online gaming community allowed for direct feedback and fostered positive word of mouth, increasing the game’s visibility.
Key concept: “Direct communication with the gaming community”
5. Multitude’s FIRETEAM
Team-based gameplay, where communication is crucial, is enhanced by incorporating voice technology. Voice communication allows for more natural and intuitive coordination between players, especially in fast-paced games where typed messages can be slow and cumbersome.
Key concept: “Combining team play and voice together”
Essential Questions
1. What are the key ingredients for successful game development, as highlighted by the postmortems in this book?
Successful game development, whether for a startup or a sequel, requires a balance of several crucial factors: teamwork and communication, project management, a deep understanding of the target audience, and a willingness to iterate and adapt. By embracing a modular design approach and utilizing effective version control systems, teams can navigate the complexities of game production and ensure that everyone is working towards a unified vision. It is also essential to have a strong relationship with the publisher, who ultimately holds the power to market and distribute the game. And perhaps most importantly, it’s crucial to remember that making games should be fun. A passionate and dedicated team is more likely to overcome the inevitable challenges and create a product that they are proud of.
2. What are the specific challenges of adapting a game from another medium, and how can these challenges be overcome?
The process of adapting a game from another medium, such as a film or novel, presents unique challenges. The interactive nature of games requires a different approach to storytelling and character development. Additionally, the limitations of real-time graphics and technology often make it difficult to capture the nuances and emotional depth of the source material. However, successful adaptations can be achieved by focusing on the elements of the license that translate well to the interactive medium, and by using the license as inspiration to create something new and unique, rather than simply trying to replicate the original.
3. What are the key considerations for developing and managing a successful online game?
Online game development presents a unique set of challenges, mainly due to the unpredictable nature of the online environment and the need to cater to a large and diverse community of players. Successful online games often require a robust back-end infrastructure, with scalable servers, effective anti-cheat measures, and tools for community management and support. Developers must also consider the long-term lifespan of an online game, and plan for ongoing content updates and community engagement.
4. Why is it crucial to embrace prototyping and iterative design in game development?
While preproduction and planning are generally acknowledged as important steps in the development process, many teams underestimate the value of prototyping and iterative design. By quickly creating and testing core gameplay mechanics and features, developers can get valuable feedback, identify problems early, and make more informed design decisions. This approach helps avoid costly mistakes and wasted effort further down the line.
5. What role does communication and teamwork play in successful game development, according to the book?
The book underscores the importance of effective communication and teamwork in game development, especially as team size increases. Open and frequent communication between all team members, including programmers, artists, designers, and testers, helps to avoid redundancy, resolve problems quickly, and ensure that everyone is working towards a unified vision. Regular meetings, designated points of contact between departments, and accessible documentation are all valuable tools for facilitating communication and collaboration.
Key Takeaways
1. Define a High Concept
A strong high concept provides a clear vision and direction for the project, helping to prioritize features, guide decision-making, and maintain team focus. It’s essential to revisit and refine the high concept throughout the development process, ensuring it stays relevant and serves as a touchstone for evaluating decisions.
Practical Application:
During a software project, regularly schedule time to review the project’s high concept and eliminate features that, while interesting, don’t contribute to the core game experience.
2. Break Down Complex Technologies
By tackling each major technology as a separate project, the team can focus their efforts, gain a better understanding of its complexities, and mitigate risk. This approach also allows for easier iteration and refinement, ensuring the technology is robust and ready before full game production begins.
Practical Application:
Before starting a complex game project, break down the development of essential technologies, such as AI, physics simulation, or graphics engine, into separate, smaller projects with their own timelines and deliverables.
3. Implement Effective Bug Tracking
Efficient bug tracking is essential for managing the complexity of game development. A clear and accessible system allows for quick identification and prioritization of bugs, facilitating their resolution. Direct communication between testers and developers helps to clarify issues and speeds up the debugging process.
Practical Application:
Create an internal bug tracking system that is accessible to all team members, including designers, artists, and programmers. Assign bugs to specific individuals and encourage regular communication between testers and developers.
4. Plan for the Online Environment
The success of an online game depends on a stable and scalable infrastructure, effective customer support, and an engaged community. Planning for these factors from the outset is crucial for a smooth launch and long-term viability.
Practical Application:
Before starting an online game project, research and invest in robust server technology, security measures, and community management tools. Create a detailed plan for handling customer service issues and anticipate a larger player base than initially projected.
5. Document Everything
Clear and readily accessible documentation allows the team to work more independently and effectively. It prevents misunderstandings, reduces the need for constant communication, and helps maintain consistency throughout the project.
Practical Application:
Develop an internal wiki or shared documentation platform where designers, artists, and programmers can easily access and update information about game systems, level design guidelines, art asset requirements, and coding standards.
Suggested Deep Dive
Chapter: Lionhead Studios’ BLACK & WHITE
This chapter offers a fascinating look at the challenges of managing innovation, particularly the development of complex artificial intelligence systems and the creation of visually stunning and immersive game worlds. Molyneux’s ambition and the team’s dedication are inspiring, and the lessons learned from their experience are valuable for any AI engineer.
Memorable Quotes
Introduction: Tales from the Front Line. 11
“The publisher does not offer any warranties and does not guarantee the accuracy, adequacy, or completeness of any information herein and is not responsible for any errors or omissions. The publisher assumes no liability for damages resulting from the use of the information in this book or for any infringement of the intellectual property rights of third parties that would result from the use of this information.”
Irrational Games’ SYSTEM SHOCK 2. 23
“In all our interviews, one of our most pressing questions to ourselves was “Does this person get games?” Failure to “get” them was a definite strike against any prospective employee. Ultimately, the team’s passion for and understanding of games was a major contributor to the design of the final product.”
Bohemia Interactive Studios’ OPERATION FLASHPOINT. 36
“The result of this creative freedom is a game that is really distinct. Our design-on-the-fly approach (or “design by playing,” as we prefer to think of it) made the game very enjoyable and a different experience from any other.”
Ensemble’s AGE OF EMPIRES. 78
“One of the lessons learned from the multiplayer experience was to make full use of communications testing tools, such as automated logs and checksums. Also, we discovered that creating a simple communications data flow simulator program can provide great benefits and isolate the communications code from the rest of the game.”
Managing Innovation. 148
“If this book teaches one lesson, it should be that this is not always possible. Game development is very complex, especially new kinds of games.”
Comparative Analysis
While “Postmortems from Game Developer” focuses on the specific challenges and triumphs of individual game development projects, other notable works in the field provide broader perspectives. “Masters of Doom” by David Kushner delves into the history of id Software and the rise of the first-person shooter genre. “Game Over” by David Sheff offers a critical look at the history of Nintendo and the console gaming market. These works, along with countless others, provide valuable context for understanding the evolution of the industry, while “Postmortems from Game Developer” zooms in on the nitty-gritty details of actual game production. The book’s focus on the experiences of individual developers, from programmers to artists to designers, offers practical lessons that transcend specific technologies or game genres.
Reflection
The book “Postmortems from Game Developer” provides a valuable look into the often chaotic and unpredictable world of game development. It underscores the importance of adaptability, perseverance, and clear communication within development teams. While the specific technologies and games discussed may seem somewhat dated in today’s rapidly evolving tech landscape, the core principles and lessons learned remain timeless. The book’s emphasis on the human element of game development, from team dynamics to the importance of passion and individual contributions, is particularly resonant. It’s a reminder that behind every seemingly magical piece of software are real people struggling to bring their vision to life. One skeptical angle is the overemphasis on the crunch culture, which, while prevalent in the industry, shouldn’t be normalized or celebrated. Overall, the book is a must-read for anyone aspiring to enter the world of game development, offering a candid and insightful view of the challenges and rewards that lie ahead.
Flashcards
What is prototyping in game development?
It’s the process of quickly creating and testing core gameplay mechanics and features to get valuable feedback, identify problems early, and make more informed design decisions.
What is a “sandbox” game?
A game whose interest derives from the amusement value of a complex, dynamic simulation, which relies on player creativity rather than pre-set goals or narrative.
What is a game “engine”?
Core systems that, taken as a group, display the game environment and enact its basic functions; as distinct from data.
What is an “exploit” in game development?
A flaw in the game, particularly in online games, that players can use to gain disproportionate advantages and rewards.
What is a “patch”?
A piece of software that fixes problems in a product that has already been shipped, correcting bugs and adding missing features.
What is a “cut-scene” in game development?
A non-interactive animated presentation, played back from prepared data rather than generated dynamically.